iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
DevOps

中台化轉型系列 第 19

機器學習:資料流圖(Data Flow Graphs)模型訓練架構

  • 分享至 

  • xImage
  •  

資料流模型將運算任務描述成一個"有向無環圖",節點表示資料運算和儲存,節點之間的連線表示資料流向以及節點的依賴關係。

TensorFlow

名字由多維度資料集 - "張量(Tensor)"與"資料流(Flow)"組成,使用拓撲圖代表資料流關聯,具備痊域優化能力。

  • 設計原則
    • 資料流:支持各種類型的數值計算任務。
    • 拓撲圖:避免運行階段的重複建構以提升運行效能。
    • 異質性:支援CPU、GPU、TPU等運算單元以及TCP、gRPC、RDMA等通訊。
  • 系統架構
    • 應用層:提供多種程式語言撰寫環境。
    • API介面層:提供多種程式語言介面。
    • 圖計算層:負責單機或分散式的計算環境。
    • 資料操作層:負責於實體運算單元上"張量"的操作與運算。
    • 網路層(Network Layer):透過 gRPC 和 RDMA 實現程序(Process)間的通訊。
    • 裝置管理層(Device Layer):負責實際的網路及運算單元管理。
  • 交談(Session)
    管理資料流的運行狀態。
    • 角色
      • Client
        序列化、傳輸以及啟動程式撰寫時所定義的 GraphDef 任務。
      • Master
        進行模型剪枝(Pruning)將任務組成"最小生成樹",將任務切割成分區圖(Graph Partition),之後通知 Worker 執行分配的任務分區圖。
      • Worker
        將任務切割成子分區圖(Sub Graph Partition)給運算單元執行。
    • 參數
      • Cluster:運行叢集及透過 ClusterSpec 設定 Job 及 Task 的組態資訊。
      • Job:使用 job_id 來識別 Worker。
      • Task:使用 job_id:task_index 來識別任務。
  • 模型複製
    • In-Graph
      將輸入資料、拓撲圖(tf.Graph)和參數(tf.Variables)分配到不同的節點上執行,如果任務(Task)失敗則整個任務失敗,容錯能力較低。
    • Between-Graph:
      參數會透過 Cheif Worker 存取,以共享方式儲存在"參數伺服器(PS)"上,包含參數初始化、Checkpoint、Tensorboard Summary。
  • 分散式策略
    • ParameterServerStrategy
      參數伺服器架構:定義 PS 與 Worker 實體數量、執行節點、通訊組態。
    • MultiWorkerMirroredStrategy
      Ring-AllReduce架構。

PyTorch

採取組態檔案以及指令(CLI)參數方式組成程式,採用動態圖(Dynamic Graph)以及 Autograd 實作梯度運算,目前缺乏像 TensorFlow 一樣支援多種伺服器以及移動端等架構運行環境。

  • 分散式架構
    • 參數
      • Group:程序集合
      • World_size:全域的程序數量
      • Rank:表示程序的識別碼及優先序(Rank0為主節點)
      • local_rank:程序內的編號
    • 運行架構
      • 點對點通訊(Point-to-Point Communication):程序間的資料傳輸
      • 集合通訊(Collective Communication):支援 AllReduce以及Boardcast等集合通訊
  • 程式介面
    • DataParallel
      使用 Optimizer 來合併及廣播梯度及參數,容易遭遇附載平衡問題,造成單點瓶頸。
    • DistributedDataParallel
      採用 Ring-AllReduce 最佳頻寬解決方案。
  • 通訊引擎
    • Gloo:常用於 CPU 叢集
    • NCCL:常用於 GPU 叢集

上一篇
機器學習:模型訓練架構
下一篇
分散式資料庫:New SQL
系列文
中台化轉型30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言